// 解构赋值：ES6允许按照一定的模式去对象里或数组里取值，给变量进行赋值

// 特点：
// 1.给变量赋值
// 2.来源，数组或对象
// 3.按照一定的模式


//数组的解构

// let a = 0;
// let b = 2;
// console.log(a, b)
//0,2

// let [c, d] = [1, 3]
// console.log(c, d)//1,3

// let arr = [1, 3]
// let [c, d] = arr;
// console.log(c, d)//1,3

// let [a, b, c] = [3, 4]
// console.log(a, b, c)//3 4 undefined

// let [a, b] = [1, 2, 3, 4, 4]
// console.log(a, b)//1,2

// let [a, b, ...c] = [1, 2, 5, 5, 6, 8];
// console.log(c) //[ 5, 5, 6, 8 ]
// console.log(b) //2

// let [a, [b]] = [1, [2, 5]]
// console.log(a, b) //1,2

// let [name, age = 11] = [12]
// console.log(age) //11

//数组解构的应用
// let [name, pwd] = document.querySelectorAll('input')
// console.log(name, pwd) //获取到两个标签


//对象的解构

// let obj = { name: "zd", age: "12" }
// console.log(obj.name, obj.age)//zd,12

// let { name, age } = { name: "zs", age: "12" };
// console.log(name, age) //zs 12

// let { nam, age } = { name: "zs", age: "12" };
// console.log(nam, age) //undefined 12

// let { name, age, ss } = { name: "zs", age: "12" };
// console.log(name, age, ss) //zs 12 undefined

// function aa({ a = 1, b = 5 }) {
//     console.log(a) //2
//     console.log(b) //5
// }
// aa({ a: 2 })

// let { a = 12, b } = { b: 3 }
// console.log(a, b)//12 3

// let { a = 12, b } = { a: undefined, b: 3 }
// console.log(a, b) //12 3

// let { a = 12, b } = { a: '', b: 3 }
// console.log(a, b) //空格 3

//对象解构的应用

// function getDate() {
//     let date = new Date();
//     let y = date.getFullYear();
//     let m = date.getMonth() + 1;
//     return { y: y, m: m }
// }
// console.log(getDate()) //{ y: 2019, m: 2 }

// function getDate() {
//     let date = new Date();
//     let y = date.getFullYear();
//     let m = date.getMonth() + 1;
//     return { y, m }
// }
// console.log(getDate()) //{ y: 2019, m: 2 }

// function getDate() {
//     let date = new Date();
//     let y = date.getFullYear();
//     let m = date.getMonth() + 1;
//     return { y, m }
// }
// let { y, m } = getDate()
// console.log(y, m)//2019 2

// function getDate() {
//     let date = new Date();
//     let y = date.getFullYear();
//     let m = date.getMonth() + 1;
//     return { y, m }
// }
// let { y: year, m: month } = getDate()//起别名，就无法打印y,m
// console.log(year, month) //2019 2

//<div class="aa" style="font-size:12px;"><p>child</p></div>
// let obj = {
//     tagName: "div",
//     props: {
//         class: "aa",
//         style: "font-size:20px"
//     },
//     children: {
//         tagName: "p",
//         children: "child"
//     }
// }

// function creatdiv(obj) {
//     let { tagName, props, children } = obj;
//     let ele = document.createElement(tagName);
//     document.body.appendChild(ele)
//     if (props) {
//         for (let k in props) {
//             ele.setAttribute(k, props[k])
//         }
//     }

//     if (typeof children === "object") {
//         ele.appendChild(creatdiv(children))
//     } else {
//         ele.innerHTML = children;
//     }
//     return ele
// }
// creatdiv(obj)